(function(n) {
var f = function(d) { return document.querySelectorAll(d)[0] },
d = function(d, f) { return d ? d[f] || "" : "" },
v = function(d, f) { if (d)
for (var e = d.length, h = 0; h < e; h++) f(h, d[h]) },
x = function(d, f, e) { f = [f.toLowerCase(), "webkit".concat(f), "MS".concat(f), "o".concat(f)];
v(f, function(h, f) { d[f] = e }) },
C = function(d, f, e) { e = [e.toLowerCase(), "webkit".concat(e), "MS".concat(e), "o".concat(e)];
v(e, function(e, m) { d.addEventListener(m, f, !1) }) },
M = function(d, f) { C(d, f, "AnimationEnd") },
R = function(d, f) {
d.transitionEndEvent || (d.transitionEndEvent = !0, C(d, f, "TransitionEnd"))
},
F = function(d, f) { d.firstChild ? d.insertBefore(f, d.firstChild) : d.appendChild(f) },
l = function(m, l) {
var e = this,
h = function(a, c) { var b = function(a) { return "undefined" !== typeof a }; return c ? b(l[a]) ? b(l[a][c]) ? l[a][c] : E[a][c] : E[a][c] : b(l[a]) ? l[a] : E[a] },
L = function(a, c) {
try {
if (c) {
if (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) document.exitFullscreen ? document.exitFullscreen()["catch"](function() {}) : document.mozCancelFullScreen ?
document.mozCancelFullScreen()["catch"](function() {}) : document.mozCancelFullScreen && document.mozCancelFullScreen()["catch"](function() {})
} else if (a.requestFullScreen) a.requestFullScreen();
else if (a["ms".concat("RequestFullScreen")]) a["ms".concat("RequestFullScreen")]();
else if (a["moz".concat("RequestFullScreen")]) a["moz".concat("RequestFullScreen")]();
else if (a["webkit".concat("RequestFullScreen")]) a["webkit".concat("RequestFullScreen")]()
} catch (b) { console.warn("[Zuck.js] Can't access fullscreen") }
},
w = function(a, c, b, e) { var d = 0 < c ? 1 : -1;
d *= Math.abs(c) / f("#zuck-modal").offsetWidth * 90; if (h("cubeEffect")) { var g = 0 === d ? "scale(0.95)" : "scale(0.930,0.930)";
x(f("#zuck-modal-content").style, "Transform", g); if (-90 > d || 90 < d) return !1 }
c = h("cubeEffect") ? "rotateY(".concat(d, "deg)") : "translate3d(".concat(c, "px, 0, 0)");
a && (x(a.style, "TransitionTimingFunction", e), x(a.style, "TransitionDuration", "".concat(b, "ms")), x(a.style, "Transform", c)) },
y = function(a, c, b, e) {
var d = 0,
g = 0;
if (a) {
if (a.offsetParent) {
do
if (d += a.offsetLeft,
g += a.offsetTop, a === e) break;
while (a = a.offsetParent)
}
c && (g -= c);
b && (d -= b)
}
return [d, g]
};
"string" === typeof m && (m = document.getElementById(m));
m.id || m.setAttribute("id", "stories-" + Math.random().toString(36).substr(2, 9));
var G = function(a) {
a = 1E3 * Number(a);
a = new Date(a);
var c = a.getTime();
c = ((new Date).getTime() - c) / 1E3;
var b = h("language", "time");
b = [
[60, " ".concat(b.seconds), 1],
[120, "1 ".concat(b.minute), ""],
[3600, " ".concat(b.minutes), 60],
[7200, "1 ".concat(b.hour), ""],
[86400, " ".concat(b.hours), 3600],
[172800,
" ".concat(b.yesterday), ""
],
[604800, " ".concat(b.days), 86400]
];
var e = 1;
0 > c && (c = Math.abs(c), e = 2);
for (var d = 0, g; g = b[d++];)
if (c < g[0]) return "string" === typeof g[2] ? g[e] : Math.floor(c / g[2]) + g[1];
c = a.getDate();
b = a.getMonth();
a = a.getFullYear();
return "".concat(c, "/").concat(b + 1, "/").concat(a)
},
k = m.id,
E = {
skin: "snapgram",
avatars: !0,
stories: [],
backButton: !0,
backNative: !1,
paginationArrows: !1,
previousTap: !0,
autoFullScreen: !1,
openEffect: !0,
cubeEffect: !1,
list: !1,
localStorage: !0,
callbacks: {
onOpen: function(a, c) { c() },
onView: function(a) {},
onEnd: function(a, c) { c() },
onClose: function(a, c) { c() },
onNextItem: function(a, c, b) { b() },
onNavigateItem: function(a, c, b) { b() }
},
template: {
timelineItem: function(a) {
return '\n
')
},
timelineStoryItem: function(a) {
return '\n
\n')
},
viewerItem: function(a, c) {
return '\n
\n
\n'.concat(h("backButton") ? '
‹' : "", '\n\n
\n
\n\n\n
\n').concat(d(a, "name"), '\n').concat(d(a, "timeAgo"), '\n
\n
\n\n
\n
').concat(d(c, "timeAgo"), '\n
\n
×\n
\n
\n\n
\n\n').concat(h("paginationArrows") ?
'' : "", "\n
")
},
viewerItemPointer: function(a, c, b) {
return '\n\n')
},
viewerItemBody: function(a, c, b) {
return '\n').concat("video" === d(b, "type") ? '
\n
').concat(h("language", "unmute"), "") : '

\n"), "\n\n").concat(d(b, "link") ? '
\n').concat(d(b, "linkText") && "" !== d(b, "linkText") ? d(b, "linkText") : h("language", "visitLink"), "\n") :
"", "\n
")
}
},
language: { unmute: "Touch to unmute", keyboardTip: "Press space to see next", visitLink: "Visit link", time: { ago: "ago", hour: "hour ago", hours: "hours ago", minute: "minute ago", minutes: "minutes ago", fromnow: "from now", seconds: "seconds ago", yesterday: "yesterday", tomorrow: "tomorrow", days: "days ago" } }
},
z = function() {
var a = f("#zuck-modal");
a || n.Zuck.hasModal || (n.Zuck.hasModal = !0, a = document.createElement("div"), a.id = "zuck-modal", h("cubeEffect") && (a.className = "with-cube"), a.innerHTML =
'', a.style.display = "none", a.setAttribute("tabIndex", "1"), a.onkeyup = function(a) { a = a.keyCode;
27 === a ? z.close() : (13 === a || 32 === a) && z.next() }, h("openEffect") && a.classList.add("with-effects"), R(a, function() { a.classList.contains("closed") && (c.innerHTML = "", a.style.display = "none", a.classList.remove("closed"), a.classList.remove("animated")) }), document.body.appendChild(a));
var c = f("#zuck-modal-content"),
b = function(a) {
var b = f("#zuck-modal"),
c = "",
d = "",
g = 0,
p = f("#zuck-modal-slider-".concat(k)),
r = { previous: f("#zuck-modal .story-viewer.previous"), next: f("#zuck-modal .story-viewer.next"), viewing: f("#zuck-modal .story-viewer.viewing") };
if (!r.previous && !a || !r.next && a) return !1;
a ? (c = "next", d = "previous") : (c = "previous", d = "next");
h("cubeEffect") ? "previous" === c ? g = b.slideWidth : "next" === c && (g = -1 * b.slideWidth) : g = -1 * y(r[c])[0];
w(p, g, 600, null);
setTimeout(function() {
if ("" !== c && r[c] && "" !== d) {
var a = r[c].getAttribute("data-story-id");
e.internalData.currentStory = a;
var b = f("#zuck-modal .story-viewer.".concat(d));
b && b.parentNode.removeChild(b);
r.viewing && (r.viewing.classList.add("stopped"), r.viewing.classList.add(d), r.viewing.classList.remove("viewing"));
r[c] && (r[c].classList.remove("stopped"), r[c].classList.remove(c), r[c].classList.add("viewing"));
(b = H(c)) && q(b, c);
var g = e.internalData.currentStory;
if (b = f('#zuck-modal [data-story-id="'.concat(g, '"]'))) {
b = b.querySelectorAll("[data-index].active");
var A = b[0].firstElementChild;
e.data[g].currentItem = parseInt(b[0].getAttribute("data-index"), 10);
b[0].innerHTML =
'');
M(b[0].firstElementChild, function() { e.nextItem(!1) })
}
w(p, "0", 0, null);
b && (a = f('#zuck-modal .story-viewer[data-story-id="'.concat(a, '"]')), D(a, [b[0], b[1]], !0));
h("callbacks", "onView")(e.internalData.currentStory)
}
}, 650)
},
q = function(a, b, c) {
var g = f("#zuck-modal-slider-".concat(k)),
q = d(a, "items");
a.timeAgo = q && q[0] ? G(d(q[0], "time")) : "";
var A = "",
p = "",
m = d(a, "id"),
n = document.createElement("div"),
l = d(a, "currentItem") || 0;
if (f('#zuck-modal .story-viewer[data-story-id="'.concat(m,
'"]'))) return !1;
n.className = "slides";
v(q, function(b, c) { c.timeAgo = G(d(c, "time"));
l > b && (a.items[b].timeAgo = c.timeAgo, a.items[b].seen = !0, c.seen = !0);
p += h("template", "viewerItemPointer")(b, l, c);
A += h("template", "viewerItemBody")(b, l, c) });
n.innerHTML = A;
var t = n.querySelector("video"),
J = function(a) { a.muted ? u.classList.add("muted") : u.classList.remove("muted") };
t && (t.onwaiting = function(a) { t.paused && (u.classList.add("paused"), u.classList.add("loading")) }, t.onplay = function() {
J(t);
u.classList.remove("stopped");
u.classList.remove("paused");
u.classList.remove("loading")
}, t.onload = t.onplaying = t.oncanplay = function() { J(t);
u.classList.remove("loading") }, t.onvolumechange = function() { J(t) });
q = document.createElement("div");
q.innerHTML = h("template", "viewerItem")(a, l);
var u = q.firstElementChild;
u.className = "story-viewer muted ".concat(b, " ").concat(c ? "" : "stopped", " ").concat(h("backButton") ? "with-back-button" : "");
u.setAttribute("data-story-id", m);
u.querySelector(".slides-pointers .wrap").innerHTML = p;
v(u.querySelectorAll(".close, .back"),
function(a, b) { b.onclick = function(a) { a.preventDefault();
z.close() } });
u.appendChild(n);
"viewing" === b && D(u, u.querySelectorAll('[data-index="'.concat(l, '"].active')), !1);
v(u.querySelectorAll(".slides-pointers [data-index] > b"), function(a, b) { M(b, function() { e.nextItem(!1) }) });
"previous" === b ? F(g, u) : g.appendChild(u)
},
p = function(a) {
var c = f("#zuck-modal"),
d, g = void 0,
q = void 0,
p = void 0,
r = void 0,
m = void 0,
k = function(b) {
var e = f("#zuck-modal .viewing");
if ("A" === b.target.nodeName) return !0;
b.preventDefault();
b = b.touches ?
b.touches[0] : b;
var h = y(f("#zuck-modal .story-viewer.viewing"));
c.slideWidth = f("#zuck-modal .story-viewer").offsetWidth;
d = h[0];
g = { x: b.pageX, y: b.pageY, time: Date.now() };
q = void 0;
p = {};
a.addEventListener("mousemove", l);
a.addEventListener("mouseup", t);
a.addEventListener("mouseleave", t);
a.addEventListener("touchmove", l);
a.addEventListener("touchend", t);
e && e.classList.add("paused");
S();
r = setTimeout(function() { e.classList.add("longPress") }, 600);
m = setTimeout(function() { clearInterval(m);
m = !1 }, 250)
},
l = function(b) {
var c =
b.touches ? b.touches[0] : b,
e = c.pageX;
c = c.pageY;
g && (p = { x: e - g.x, y: c - g.y }, "undefined" === typeof q && (q = !!(q || Math.abs(p.x) < Math.abs(p.y))), !q && g && (b.preventDefault(), w(a, d + p.x, 0, null)))
},
t = function I(A) {
var k = f("#zuck-modal .viewing"),
u = g;
if (p) {
var B = g ? Date.now() - g.time : void 0;
B = 300 > Number(B) && 25 < Math.abs(p.x) || Math.abs(p.x) > c.slideWidth / 3;
var t = 0 > p.x,
v = t ? f("#zuck-modal .story-viewer.next") : f("#zuck-modal .story-viewer.previous");
q || (!B || t && !v || !t && !v ? w(a, d, 300) : b(t));
g = void 0;
a.removeEventListener("mousemove",
l);
a.removeEventListener("mouseup", I);
a.removeEventListener("mouseleave", I);
a.removeEventListener("touchmove", l);
a.removeEventListener("touchend", I)
}
B = e.internalData.currentVideoElement;
r && clearInterval(r);
k && (D(k, k.querySelectorAll(".active"), !1), k.classList.remove("longPress"), k.classList.remove("paused"));
if (m)
if (clearInterval(m), m = !1, k = function() { u.x > n.screen.width / 3 || !h("previousTap") ? e.navigateItem("next", A) : e.navigateItem("previous", A) }, (t = f("#zuck-modal .viewing")) && B) t.classList.contains("muted") ?
N(B, t) : k();
else return k(), !1
};
a.addEventListener("touchstart", k);
a.addEventListener("mousedown", k)
};
return {
show: function(a, b) {
var d = f("#zuck-modal");
h("callbacks", "onOpen")(a, function() {
c.innerHTML = '');
var b = e.data[a],
g = b.currentItem || 0,
m = f("#zuck-modal-slider-".concat(k));
p(m);
e.internalData.currentStory = a;
b.currentItem = g;
h("backNative") && (n.location.hash = "#!".concat(k));
(g = H("previous")) && q(g, "previous");
q(b, "viewing", !0);
(b = H("next")) &&
q(b, "next");
h("autoFullScreen") && d.classList.add("fullscreen");
var l = function() { d.classList.contains("fullscreen") && h("autoFullScreen") && 1024 >= n.screen.width && L(d);
d.focus() };
h("openEffect") ? (b = f("#".concat(k, ' [data-id="').concat(a, '"] .item-preview')), g = y(b), d.style.marginLeft = "".concat(g[0] + b.offsetWidth / 2, "px"), d.style.marginTop = "".concat(g[1] + b.offsetHeight / 2, "px"), d.style.display = "block", d.slideWidth = f("#zuck-modal .story-viewer").offsetWidth, setTimeout(function() { d.classList.add("animated") },
10), setTimeout(function() { l() }, 300)) : (d.style.display = "block", d.slideWidth = f("#zuck-modal .story-viewer").offsetWidth, l());
h("callbacks", "onView")(a)
})
},
next: function(a) { h("callbacks", "onEnd")(e.internalData.currentStory, function() { var a = e.internalData.currentStory,
c = f("#".concat(k, ' [data-id="').concat(a, '"]'));
c && (c.classList.add("seen"), e.data[a].seen = !0, e.internalData.seenItems[a] = !0, O("seenItems", e.internalData.seenItems), K());
f("#zuck-modal .story-viewer.next") ? b(!0) : z.close() }) },
close: function() {
var a =
f("#zuck-modal");
h("callbacks", "onClose")(e.internalData.currentStory, function() { h("backNative") && (n.location.hash = "");
L(a, !0);
h("openEffect") ? a.classList.add("closed") : (c.innerHTML = "", a.style.display = "none") })
}
}
}(),
C = function(a, c) {
var b = a.getAttribute("data-id"),
d = document.querySelectorAll("#".concat(k, ' [data-id="').concat(b, '"] .items > li')),
f = [];
if (!h("reactive") || c) v(d, function(a, b) {
var c = b.firstElementChild,
d = c.firstElementChild;
f.push({
id: c.getAttribute("data-id"),
src: c.getAttribute("href"),
length: c.getAttribute("data-length"),
type: c.getAttribute("data-type"),
time: c.getAttribute("data-time"),
link: c.getAttribute("data-link"),
linkText: c.getAttribute("data-linkText"),
preview: d.getAttribute("src")
})
}), e.data[b].items = f, (b = h("callbacks", "onDataUpdate")) && b(e.data, function() {})
},
P = function(a, c) {
var b = a.getAttribute("data-id"),
d = !1;
e.internalData.seenItems[b] && (d = !0);
try {
e.data[b] || (e.data[b] = {}), e.data[b].id = b, e.data[b].photo = a.getAttribute("data-photo"), e.data[b].name = a.querySelector(".name").innerText,
e.data[b].link = a.querySelector(".item-link").getAttribute("href"), e.data[b].lastUpdated = a.getAttribute("data-last-updated"), e.data[b].seen = d, e.data[b].items || (e.data[b].items = [], e.data[b].noItems = !0)
} catch (p) { e.data[b] = { items: [] } }
a.onclick = function(a) { a.preventDefault();
z.show(b) };
(d = h("callbacks", "onDataUpdate")) && d(e.data, function() {})
},
H = function(a) {
var c = e.internalData.currentStory;
a = "".concat(a, "ElementSibling");
return c && (c = f("#".concat(k, ' [data-id="').concat(c, '"]'))[a]) ? (c = c.getAttribute("data-id"),
e.data[c] || !1) : !1
},
K = function() { v(document.querySelectorAll("#".concat(k, " .story.seen")), function(a, c) { var b = e.data[c.getAttribute("data-id")],
d = c.parentNode;
h("reactive") || d.removeChild(c);
e.update(b, !0) }) },
D = function(a, c, b) {
var d = c[1],
f = c[0];
if (!d || !f) return !1;
(c = e.internalData.currentVideoElement) && c.pause();
if ("video" === d.getAttribute("data-type")) {
var g = d.getElementsByTagName("video")[0];
if (!g) return e.internalData.currentVideoElement = !1;
d = function() {
g.duration && x(f.getElementsByTagName("b")[0].style,
"AnimationDuration", "".concat(g.duration, "s"))
};
d();
g.addEventListener("loadedmetadata", d);
e.internalData.currentVideoElement = g;
g.play();
b && b.target && N(g, a)
} else e.internalData.currentVideoElement = !1
},
S = function() { var a = e.internalData.currentVideoElement; if (a) try { a.pause() } catch (c) {} },
N = function(a, c) { a.muted = !1;
a.volume = 1;
a.removeAttribute("muted");
a.play();
a.paused && (a.muted = !0, a.play());
c && c.classList.remove("paused") },
O = function(a, c) {
try {
if (h("localStorage")) {
var b = "zuck-".concat(k, "-").concat(a);
n.localStorage[b] = JSON.stringify(c)
}
} catch (q) {}
},
Q = function(a) { return h("localStorage") ? (a = "zuck-".concat(k, "-").concat(a), n.localStorage[a] ? JSON.parse(n.localStorage[a]) : !1) : !1 };
e.data = h("stories") || {};
e.internalData = {};
e.internalData.seenItems = Q("seenItems") || {};
e.add = e.update = function(a, c) {
var b = d(a, "id"),
q = f("#".concat(k, ' [data-id="').concat(b, '"]')),
p = d(a, "items"),
g = void 0;
g = !1;
p[0] && (g = p[0].preview || "");
!0 === e.internalData.seenItems[b] && (a.seen = !0);
a.currentPreview = g;
q ? g = q : (g = document.createElement("div"),
g.innerHTML = h("template", "timelineItem")(a), g = g.firstElementChild);
!1 === a.seen && (e.internalData.seenItems[b] = !1, O("seenItems", e.internalData.seenItems));
g.setAttribute("data-id", b);
g.setAttribute("data-photo", d(a, "photo"));
g.setAttribute("data-last-updated", d(a, "lastUpdated"));
P(g);
q || h("reactive") || (c ? m.appendChild(g) : F(m, g));
v(p, function(a, d) { e.addItem(b, d, c) });
c || K()
};
e.next = function() { z.next() };
e.remove = function(a) { a = f("#".concat(k, ' > [data-id="').concat(a, '"]'));
a.parentNode.removeChild(a) };
e.addItem = function(a, c, b) { a = f("#".concat(k, ' > [data-id="').concat(a, '"]')); if (!h("reactive")) { var e = document.createElement("li"),
p = a.querySelectorAll(".items")[0];
e.className = d(c, "seen") ? "seen" : "";
e.setAttribute("data-id", d(c, "id"));
e.innerHTML = h("template", "timelineStoryItem")(c);
b ? p.appendChild(e) : F(p, e) }
C(a) };
e.removeItem = function(a, c) { var b = f("#".concat(k, ' > [data-id="').concat(a, '"] [data-id="').concat(c, '"]'));
h("reactive") || m.parentNode.removeChild(b) };
e.navigateItem = e.nextItem = function(a,
c) {
var b = e.internalData.currentStory,
d = e.data[b].currentItem,
k = f('#zuck-modal .story-viewer[data-story-id="'.concat(b, '"]')),
g = "previous" === a ? -1 : 1;
if (!k || 1 === k.touchMove) return !1;
var m = k.querySelectorAll('[data-index="'.concat(d, '"]')),
l = m[0],
n = m[1],
w = k.querySelectorAll('[data-index="'.concat(d + g, '"]')),
y = w[0],
r = w[1];
k && y && r ? (d = (d = h("callbacks", "onNavigateItem")) ? h("callbacks", "onNavigateItem") : h("callbacks", "onNextItem"), d(b, r.getAttribute("data-story-id"), function() {
"previous" === a ? (l.classList.remove("seen"),
n.classList.remove("seen")) : (l.classList.add("seen"), n.classList.add("seen"));
l.classList.remove("active");
n.classList.remove("active");
y.classList.remove("seen");
y.classList.add("active");
r.classList.remove("seen");
r.classList.add("active");
v(k.querySelectorAll(".time"), function(a, b) { b.innerText = G(r.getAttribute("data-time")) });
e.data[b].currentItem += g;
D(k, w, c)
})) : k && "previous" !== a && z.next(c)
};
return function() {
m && m.querySelector(".story") && v(m.querySelectorAll(".story"), function(a, c) { P(c) });
h("backNative") &&
(n.location.hash === "#!".concat(k) && (n.location.hash = ""), n.addEventListener("popstate", function(a) { n.location.hash !== "#!".concat(k) && (n.location.hash = "") }, !1));
if (!h("reactive")) { var a = Q("seenItems"); for (c in a) a.hasOwnProperty(c) && e.data[c] && (e.data[c].seen = a[c]) }
v(h("stories"), function(a, c) { e.add(c, !0) });
K();
a = h("avatars") ? "user-icon" : "story-preview";
var c = h("list") ? "list" : "carousel";
m.className += " stories ".concat(a, " ").concat(c, " ").concat("".concat(h("skin")).toLowerCase());
return e
}()
};
l.buildTimelineItem =
function(d, f, e, h, n, w) { var m = { id: d, photo: f, name: e, link: h, lastUpdated: n, items: [] };
v(w, function(d, e) { m.items.push(l.buildStoryItem.apply(l, e)) }); return m };
l.buildStoryItem = function(d, f, e, h, l, n, v, x, k) { return { id: d, type: f, length: e, src: h, preview: l, link: n, linkText: v, seen: x, time: k } };
l.buildItem = l.buildStoryItem;
"undefined" !== typeof exports ? ("undefined" !== typeof module && module.exports && (exports = module.exports = l), exports.ZuckJS = l) : n.ZuckitaDaGalera = n.Zuck = l;
return l
})(window);